package com.mathdroid.model.abilities.specs.sniper;

import com.mathdroid.model.abilities.Ability;
import com.mathdroid.model.enums.EDmgType;

public final class OrbitalStrike extends Ability {

	/**
	 * Generated UID.
	 */
	private static final long serialVersionUID = -1264841581506016868L;

	public OrbitalStrike() {
		this.setName("Orbital Strike");
		this.setIconName("orbitalbombardment");
		this.setResource("Energy");
		this.setCost(30d);
		this.setCastTimeMS(3000d);
		this.setCooldownMs(60000d);
		this.setPeriodicDamageType(EDmgType.ELEMENTAL);
		
		this.setStandardHealthPercentMax(0.177);
		this.setStandardHealthPercentMin(0.177);
		this.setCoefficient(1.77);
		
		this.setPeriodicInterval(3000d);
		
		this.setTrainableLevel(48);
	}
	
	@Override
	public String getDescription() {
		return "Calls in support from orbiting warships, dealing " +
			this.getMinPeriodic() 
			+ " elemental damage over 9 seconds to all enemies " +
			"within 8 meters of the targeted area. Standard and weak " +
			"enemies are additionally knocked down by the blasts.";
	}

	@Override
	public double getMinPeriodic() {
		return		
			this.getCoefficient() 
			* this.getCharStats().getTotalBonusDamageTechForce()
		
			+ this.getStandardHealthPercentMin() 
			* this.getStdDmg();
	}

	@Override
	public double getMaxPeriodic() {
		return this.getMaxPeriodic();
	}

	@Override
	public double getMinDirect() {
		return 0d;
	}

	@Override
	public double getMaxDirect() {
		return 0d;
	}

}
